function [DataLen PulseSig_Basic_Repeat] = fun_GenPulseSigBasicRepeat(USR_PulsePattern_Code, DEWELL_N, REPEAT_M, Voltage)

    PaternIndex = 1;
    DEV_PulsePatternNormal = 0;
    
    for (CharIndex = 1 : length(USR_PulsePattern_Code))
        if (~ (USR_PulsePattern_Code(CharIndex) == '_' || USR_PulsePattern_Code(CharIndex) == ';'   ... 
            || USR_PulsePattern_Code(CharIndex) == ' '))
            DEV_PulsePatternNormal(PaternIndex) = USR_PulsePattern_Code(CharIndex);
            PaternIndex = PaternIndex + 1;
        end 
    end

    for (j = 1 :  length(DEV_PulsePatternNormal))

        for (k = 1 : DEWELL_N)
            switch (char(DEV_PulsePatternNormal(j)))
                case '+'
                    PulseSig_Basic((j - 1) * DEWELL_N + k) = Voltage;
                case '-'
                    PulseSig_Basic((j - 1) * DEWELL_N + k) = -Voltage;
                case 'E'
                    PulseSig_Basic((j - 1) * DEWELL_N + k) =  0.5 * Voltage;                    
                case 'e'
                    PulseSig_Basic((j - 1) * DEWELL_N + k) = -0.5 * Voltage;     
                case '0'
                    PulseSig_Basic((j - 1) * DEWELL_N + k) = 0;
                otherwise 
                    PulseSig_Basic((j - 1) * DEWELL_N + k) = 0;
            end
        end
    end

    for (m = 1 : REPEAT_M)
        for (n = 1: length(DEV_PulsePatternNormal) * DEWELL_N)
            PulseSig_Basic_Repeat((m - 1) * length(DEV_PulsePatternNormal) * DEWELL_N + n) = PulseSig_Basic(n);
        end
    end 
    
    DataLen = length(PulseSig_Basic_Repeat);

end 